package com.ruoyi.prod.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 商品对象 tb_prod
 *
 * @author ruoyi
 * @date 2025-07-30
 */
public class TbProd extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 商品ID
     */
    private Long prodId;

    /**
     * SPU
     */
    @Excel(name = "SPU")
    private String prodSpu;

    /**
     * 商品类型;0实物商品1虚拟商品3卡密/网盘
     */
    @Excel(name = "商品类型;0实物商品1虚拟商品3卡密/网盘")
    private Long prodKind;

    /**
     * 商品分类
     */
    @Excel(name = "商品分类")
    private Long prodType;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String prodName;

    /**
     * 商品品牌
     */
    private Long brandId;

    /**
     * 商品单位
     */
    private Long unitId;

    /**
     * 商品标签
     */
    private Long tagId;

    /**
     * 供应商
     */
    private Long apprId;

    /**
     * 缩略图
     */
    @Excel(name = "缩略图")
    private String prodImage;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createdBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 更新时间
     */
    private Date updatedTime;

    /**
     * 商品状态：0草稿1待审核2一上线3已下线4缺货
     */
    @Excel(name = "商品状态：0草稿1待审核2一上线3已下线4缺货")
    private Long prodStatus;

    public void setProdId(Long prodId) {
        this.prodId = prodId;
    }

    public Long getProdId() {
        return prodId;
    }

    public void setProdSpu(String prodSpu) {
        this.prodSpu = prodSpu;
    }

    public String getProdSpu() {
        return prodSpu;
    }

    public void setProdKind(Long prodKind) {
        this.prodKind = prodKind;
    }

    public Long getProdKind() {
        return prodKind;
    }

    public void setProdType(Long prodType) {
        this.prodType = prodType;
    }

    public Long getProdType() {
        return prodType;
    }

    public void setProdName(String prodName) {
        this.prodName = prodName;
    }

    public String getProdName() {
        return prodName;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setUnitId(Long unitId) {
        this.unitId = unitId;
    }

    public Long getUnitId() {
        return unitId;
    }

    public void setTagId(Long tagId) {
        this.tagId = tagId;
    }

    public Long getTagId() {
        return tagId;
    }

    public void setApprId(Long apprId) {
        this.apprId = apprId;
    }

    public Long getApprId() {
        return apprId;
    }

    public void setProdImage(String prodImage) {
        this.prodImage = prodImage;
    }

    public String getProdImage() {
        return prodImage;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setProdStatus(Long prodStatus) {
        this.prodStatus = prodStatus;
    }

    public Long getProdStatus() {
        return prodStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("prodId", getProdId())
                .append("prodSpu", getProdSpu())
                .append("prodKind", getProdKind())
                .append("prodType", getProdType())
                .append("prodName", getProdName())
                .append("brandId", getBrandId())
                .append("unitId", getUnitId())
                .append("tagId", getTagId())
                .append("apprId", getApprId())
                .append("prodImage", getProdImage())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("updatedBy", getUpdatedBy())
                .append("updatedTime", getUpdatedTime())
                .append("prodStatus", getProdStatus())
                .toString();
    }
}
